1
Освоение продвинутого управления потоком выполнения
AI019Lesson 6
00:00

Это case выражение является основой управления потоком в Эликсире. В отличие от императивных операторов переключения, case является функциональным выражением, которое возвращает результат соответствующей ветви, позволяя разработчикам мгновенно раскладывать сложные структуры данных, такие как карты и кортежи, при этом обеспечивая исчерпывающую логику.

1. Сопоставление шаблонов и привязка переменных

Это case выражение позволяет проверить значение по набору шаблонов. Оно выполняет код, связанный с первым совпадающим шаблоном и возвращает значение этого кода. Вы можете привязать переменные внутри шаблона для немедленного использования в логике ветвления.

case dave do
%{state: some_state} = person ->
IO.puts "#{person.name} живёт в #{some_state}"
end

2. Визуальный поток логики

ЗначениеШаблон {:ok, val}Шаблон {:error, _}По умолчанию _

3. Условия-ограничения и полнота сопоставления

Используя ключевое слово when вы можете дополнить структурное сопоставление логикой предикатов (например, is_number(age) and age >= 21). Эликсир требует сопоставления для каждого возможного входного значения; если ни один шаблон не подходит, возникает ошибка CaseClauseError вызывается.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>